package module

import (
	"context"
	"fmt"
)

type module struct {
	ctx   context.Context
	base  Base
	group Group
	apis  []*api
	key   string
}

func (t module) String() string {
	str := fmt.Sprintf("{\nkey:%s  \nbase:%s, \ngroup:%s, \napis.size:%d,\napis:%s\n}",t.key, t.base, t.group, len(t.apis), t.apis)
	return str
}

func newModule(base Base, str string) *module {
	mm := module{
		base: base,
		apis: make([]*api, 0),
		key: str,
	}
	return &mm
}


// getGroup 获取Group
func (t module) getGroup() string {
	return string(t.group)
}

// getModule 获取group对应的 module
func (t module) getModule() module {
	return *moduleMap[t.key]
}

// getModulePath 获取module 所有对应的请求路径
func (t module) getModulePath() []*api {
	return t.apis
}

func PrintModule() {
	for k, v := range moduleMap {
		fmt.Printf("key:%s, value:%v\n", k, v)
	}
}
